End users have more media and communications choices than ever before. A number of prominent technological trends are currently afoot (e.g., more computing devices, more online video services, higher Internet access speeds), and these trends are changing the media delivery landscape. Separately, these trends are pushing the limits of capacity and, may further degrade the performance of video, where such degradation creates frustration amongst end users, content providers, and service providers. In many instances, the video data sought for delivery may be dropped, fragmented, delayed, or simply unavailable to certain end users.
Adaptive Streaming is a technique used in streaming multimedia over computer networks. While in the past, most video streaming technologies used either file download, progressive download, or custom streaming protocols, most of today's adaptive streaming technologies are based on hypertext transfer protocol (HTTP). These technologies are designed to work efficiently over large distributed HTTP networks such as the Internet.
HTTP-based Adaptive Streaming (HAS) operates by tracking metrics such as a user's bandwidth and CPU capacity, and then selecting an appropriate representation (e.g., bandwidth and resolution) among the available options to stream. Typically, HAS would leverage the use of a constant bitrate (CBR) encoder that can encode a single source video at multiple bitrates and resolutions (e.g., representations). The player client can switch among the different representations depending on available resources. Ideally, the result of these activities is little buffering, fast start times, and good video quality experience for both high-bandwidth and low-bandwidth connections.